<template>
      <div>
        <!-- 角色維護 -->
        <VxePage
          id="0001.A129.0021"
          ref="0001.A129.0021"
          :query-form="queryForm"
          :state-count-config="statusCountConfig"
          :list-page-config="{
            tableFixColumns: true,
            tableFixHeight: true,
            tableMode: 'radio',
            showCfgButton: true
          }"
          :opt-code="optCode"
          @doAdd="doAdd"
          @doDetail="doDetail"
          @doEdit="doEdit"
          @doDelete="doDelete"
        >
          <template #buttonGroup>
            <bfe-button
              type="primary"
              icon="search"
              :loading="$refs['0001.A129.0021'] ? $refs['0001.A129.0021'].tableLoading : false"
              @click="doSearch"
            >
              {{ $t('stm.btn.query') }}
            </bfe-button>
          </template>
          <!-- 所属银行 -->
          <template #cond_bankId="{cfg}">
            <bfe-form-item :label="$t('stm.userMaintenance.instno')" style="width: 210px;" prop="bankId">
              <bfe-select v-if="userInfo.userAhrInstNo==='3'" v-model="queryForm.bankId" size="small" :placeholder="$t('stm.validateTip.pleaseSelect')" filterable clearable>
                <bfe-option v-for="(item, index) in bankObj[language]" :key="item.key" :label="item.value" :value="item.key" />
              </bfe-select>
              <bfe-input v-else v-model="bankNameReadonly[0].value"
                         readonly
                         size="small"
                         style="width: 210px"
              />
            </bfe-form-item>
          </template>
        </VxePage>
        <Add ref="add" :bank-list="bankList" :auth-bank-no="queryForm.bankId" @doSearch="doSearch" />
      </div>
    </template>
    
    <script>
    import VxePage from '@/components/vxePage/vxePage';
    import Add from './Add'
    import mixinList from '@stm/mixins'
    import {mapState} from 'vuex';
    
    export default {
      components: {
        VxePage,
        Add
      },
      mixins: [mixinList],
      data() {
        return {
          queryForm: {},
          statusCountConfig: {},
          optCode: 'STM005GET1101',
          selectObj: {
            banksWithId: {}
          },
          addBankIdList:[],
        
        }
      },
      computed: {
        bankList(){
          if(this.userInfo.userAhrInstNo==='3'){
         
            return this.bankObj[this.language]
          }else{
    
            return this.bankNameReadonly
          }
        }
      },
      mounted() {
        const arr = [
          {paratype: 'banksWithId'}
        ]
        this.getSelectList(arr)
        this.initBank().then(res=>{
          if(this.userInfo.userAhrInstNo==='3'){
            this.$set(this.queryForm,'bankId','0')
          }else{
            this.$set(this.queryForm,'bankId',this.bankNameReadonly[0].key)
          }
          this.$forceUpdate()
        })
        console.log(this.bankList,this.bankObj[this.language],this.language, 'selectObj====')
      },
      methods: {
        doAdd(row){
          this.$refs.add.initPage('add')
        },
        doDetail(row){
          const arr = row.rows
          if(arr.length !== 1){
            this.$message.warning(this.$t('stm.handleTips.selectOne'))
            return
          }
          this.$refs.add.initPage('detail', arr[0])
        },
        doEdit(row){
          const arr = row.rows
          if(arr.length !== 1){
            this.$message.warning(this.$t('stm.handleTips.selectOne'))
            return
          }
          this.$refs.add.initPage('edit', arr[0])
        },
        doSearch(){
          this.$refs['0001.A129.0021'].doSearch('pageOne')
        },
        doDelete(row){        
          const arr = row.rows
          if(arr.length !== 1){
            this.$message.warning(this.$t('stm.handleTips.selectOne'))
            return
          }
          const {roleNo, bankId}= arr[0]
          let self = this
          this.$messageBox.confirm(self.$t('stm.handleTips.confirmDel'), self.$t('stm.handleTips.tip'), {
            confirmButtonText: self.$t('stm.handleTips.yes'),
            cancelButtonText: self.$t('stm.handleTips.no'),
            type: 'warning',
            closeOnClickModal: false
          }).then(() => {
            const params = {
              optCode: 'STM005DEL1101',
              payload: {
                roleNo,
                bankId
              }
            }
            this.$p2svr(this.$api['_01_STM005ROLE1100'] , 'RequestPoAuth', params).then(res => {
              if(res.optMsgInfo && res.optMsgInfo.optStatus === 'success'){
                this.doSearch()
              }
            }).finally(() => {
              this.loading = false
            })
          }).catch(() => {
    
          })
        }
      }
    }
    </script>